_KPRCB

//0x46b8 bytes (sizeof) struct _KPRCB { USHORT MinorVersion; //0x0 USHORT MajorVersion; //0x2 struct _KTHREAD* CurrentThread; //0x4 struct _KTHREAD* NextThread; //0x8 struct _KTHREAD* IdleThread; //0xc UCHAR LegacyNumber; //0x10 UCHAR NestingLevel; //0x11 USHORT BuildType; //0x12 CHAR CpuType; //0x14 CHAR CpuID; //0x15 union { USHORT CpuStep; //0x16 struct { UCHAR CpuStepping; //0x16 UCHAR CpuModel; //0x17 }; }; struct _KPROCESSOR_STATE ProcessorState; //0x18 struct _KNODE* ParentNode; //0x338 CHAR* PriorityState; //0x33c ULONG KernelReserved[14]; //0x340 ULONG HalReserved[16]; //0x378 ULONG CFlushSize; //0x3b8 UCHAR CoresPerPhysicalProcessor; //0x3bc UCHAR LogicalProcessorsPerCore; //0x3bd UCHAR CpuVendor; //0x3be UCHAR PrcbPad0[1]; //0x3bf ULONG MHz; //0x3c0 UCHAR GroupIndex; //0x3c4 UCHAR Group; //0x3c5 UCHAR PrcbPad05[2]; //0x3c6 ULONG GroupSetMember; //0x3c8 ULONG Number; //0x3cc UCHAR ClockOwner; //0x3d0 union { UCHAR PendingTickFlags; //0x3d1 struct { UCHAR PendingTick:1; //0x3d1 UCHAR PendingBackupTick:1; //0x3d1 }; }; UCHAR PrcbPad10[70]; //0x3d2 struct _KSPIN_LOCK_QUEUE LockQueue[17]; //0x418 ULONG InterruptCount; //0x4a0 ULONG KernelTime; //0x4a4 ULONG UserTime; //0x4a8 ULONG DpcTime; //0x4ac ULONG DpcTimeCount; //0x4b0 ULONG InterruptTime; //0x4b4 ULONG AdjustDpcThreshold; //0x4b8 ULONG PageColor; //0x4bc UCHAR DebuggerSavedIRQL; //0x4c0 UCHAR NodeColor; //0x4c1 UCHAR PrcbPad20[6]; //0x4c2 ULONG NodeShiftedColor; //0x4c8 ULONG SecondaryColorMask; //0x4cc ULONG DpcTimeLimit; //0x4d0 ULONG PrcbPad21[3]; //0x4d4 ULONG CcFastReadNoWait; //0x4e0 ULONG CcFastReadWait; //0x4e4 ULONG CcFastReadNotPossible; //0x4e8 ULONG CcCopyReadNoWait; //0x4ec ULONG CcCopyReadWait; //0x4f0 ULONG CcCopyReadNoWaitMiss; //0x4f4 volatile LONG MmSpinLockOrdering; //0x4f8 volatile LONG IoReadOperationCount; //0x4fc volatile LONG IoWriteOperationCount; //0x500 volatile LONG IoOtherOperationCount; //0x504 union _LARGE_INTEGER IoReadTransferCount; //0x508 union _LARGE_INTEGER IoWriteTransferCount; //0x510 union _LARGE_INTEGER IoOtherTransferCount; //0x518 ULONG CcFastMdlReadNoWait; //0x520 ULONG CcFastMdlReadWait; //0x524 ULONG CcFastMdlReadNotPossible; //0x528 ULONG CcMapDataNoWait; //0x52c ULONG CcMapDataWait; //0x530 ULONG CcPinMappedDataCount; //0x534 ULONG CcPinReadNoWait; //0x538 ULONG CcPinReadWait; //0x53c ULONG CcMdlReadNoWait; //0x540 ULONG CcMdlReadWait; //0x544 ULONG CcLazyWriteHotSpots; //0x548 ULONG CcLazyWriteIos; //0x54c ULONG CcLazyWritePages; //0x550 ULONG CcDataFlushes; //0x554 ULONG CcDataPages; //0x558 ULONG CcLostDelayedWrites; //0x55c ULONG CcFastReadResourceMiss; //0x560 ULONG CcCopyReadWaitMiss; //0x564 ULONG CcFastMdlReadResourceMiss; //0x568 ULONG CcMapDataNoWaitMiss; //0x56c ULONG CcMapDataWaitMiss; //0x570 ULONG CcPinReadNoWaitMiss; //0x574 ULONG CcPinReadWaitMiss; //0x578 ULONG CcMdlReadNoWaitMiss; //0x57c ULONG CcMdlReadWaitMiss; //0x580 ULONG CcReadAheadIos; //0x584 ULONG KeAlignmentFixupCount; //0x588 ULONG KeExceptionDispatchCount; //0x58c ULONG KeSystemCalls; //0x590 ULONG AvailableTime; //0x594 ULONG PrcbPad22[2]; //0x598 struct _PP_LOOKASIDE_LIST PPLookasideList[16]; //0x5a0 struct _GENERAL_LOOKASIDE_POOL PPNxPagedLookasideList[32]; //0x620 struct _GENERAL_LOOKASIDE_POOL PPNPagedLookasideList[32]; //0xf20 struct _GENERAL_LOOKASIDE_POOL PPPagedLookasideList[32]; //0x1820 volatile ULONG PacketBarrier; //0x2120 volatile LONG ReverseStall; //0x2124 VOID* IpiFrame; //0x2128 UCHAR PrcbPad3[52]; //0x212c VOID* volatile CurrentPacket[3]; //0x2160 volatile ULONG TargetSet; //0x216c VOID (* volatileWorkerRoutine)(VOID* arg1, VOID* arg2, VOID* arg3, VOID* arg4); //0x2170 volatile ULONG IpiFrozen; //0x2174 UCHAR PrcbPad4[40]; //0x2178 volatile ULONG RequestSummary; //0x21a0 struct _KPRCB* volatile SignalDone; //0x21a4 UCHAR PrcbPad50[40]; //0x21a8 ULONG InterruptLastCount; //0x21d0 ULONG InterruptRate; //0x21d4 ULONG DeviceInterrupts; //0x21d8 VOID* IsrDpcStats; //0x21dc struct _KDPC_DATA DpcData[2]; //0x21e0 VOID* DpcStack; //0x2210 LONG MaximumDpcQueueDepth; //0x2214 ULONG DpcRequestRate; //0x2218 ULONG MinimumDpcRate; //0x221c ULONG DpcLastCount; //0x2220 ULONG PrcbLock; //0x2224 struct _KGATE DpcGate; //0x2228 UCHAR ThreadDpcEnable; //0x2238 volatile UCHAR QuantumEnd; //0x2239 volatile UCHAR DpcRoutineActive; //0x223a volatile UCHAR IdleSchedule; //0x223b union { volatile LONG DpcRequestSummary; //0x223c SHORT DpcRequestSlot[2]; //0x223c struct { SHORT NormalDpcState; //0x223c SHORT ThreadDpcState; //0x223e }; struct { ULONG DpcNormalProcessingActive:1; //0x223c ULONG DpcNormalProcessingRequested:1; //0x223c ULONG DpcNormalThreadSignal:1; //0x223c ULONG DpcNormalTimerExpiration:1; //0x223c ULONG DpcNormalDpcPresent:1; //0x223c ULONG DpcNormalLocalInterrupt:1; //0x223c ULONG DpcNormalSpare:10; //0x223c ULONG DpcThreadActive:1; //0x223c ULONG DpcThreadRequested:1; //0x223c ULONG DpcThreadSpare:14; //0x223c }; }; ULONG LastTimerHand; //0x2240 ULONG LastTick; //0x2244 ULONG PeriodicCount; //0x2248 ULONG PeriodicBias; //0x224c ULONG ClockInterrupts; //0x2250 ULONG ReadyScanTick; //0x2254 UCHAR GroupSchedulingOverQuota; //0x2258 UCHAR PrcbPad41[3]; //0x2259 struct _KTIMER_TABLE TimerTable; //0x2260 struct _KDPC CallDpc; //0x3aa0 LONG ClockKeepAlive; //0x3ac0 UCHAR PrcbPad6[4]; //0x3ac4 LONG DpcWatchdogPeriod; //0x3ac8 LONG DpcWatchdogCount; //0x3acc volatile LONG KeSpinLockOrdering; //0x3ad0 ULONG PrcbPad70[1]; //0x3ad4 ULONG QueueIndex; //0x3ad8 struct _SINGLE_LIST_ENTRY DeferredReadyListHead; //0x3adc ULONG ReadySummary; //0x3ae0 LONG AffinitizedSelectionMask; //0x3ae4 ULONG WaitLock; //0x3ae8 struct _LIST_ENTRY WaitListHead; //0x3aec ULONG ScbOffset; //0x3af4 ULONGLONG StartCycles; //0x3af8 ULONGLONG GenerationTarget; //0x3b00 volatile ULONGLONG CycleTime; //0x3b08 ULONGLONG AffinitizedCycles; //0x3b10 volatile ULONG HighCycleTime; //0x3b18 ULONG PrcbPad71; //0x3b1c struct _LIST_ENTRY DispatcherReadyListHead[32]; //0x3b20 VOID* ChainedInterruptList; //0x3c20 LONG LookasideIrpFloat; //0x3c24 struct _RTL_RB_TREE ScbQueue; //0x3c28 struct _LIST_ENTRY ScbList; //0x3c30 volatile LONG MmPageFaultCount; //0x3c38 volatile LONG MmCopyOnWriteCount; //0x3c3c volatile LONG MmTransitionCount; //0x3c40 volatile LONG MmCacheTransitionCount; //0x3c44 volatile LONG MmDemandZeroCount; //0x3c48 volatile LONG MmPageReadCount; //0x3c4c volatile LONG MmPageReadIoCount; //0x3c50 volatile LONG MmCacheReadCount; //0x3c54 volatile LONG MmCacheIoCount; //0x3c58 volatile LONG MmDirtyPagesWriteCount; //0x3c5c volatile LONG MmDirtyWriteIoCount; //0x3c60 volatile LONG MmMappedPagesWriteCount; //0x3c64 volatile LONG MmMappedWriteIoCount; //0x3c68 volatile ULONG CachedCommit; //0x3c6c volatile ULONG CachedResidentAvailable; //0x3c70 VOID* HyperPte; //0x3c74 UCHAR PrcbPad8[4]; //0x3c78 UCHAR VendorString[13]; //0x3c7c UCHAR InitialApicId; //0x3c89 UCHAR LogicalProcessorsPerPhysicalProcessor; //0x3c8a UCHAR PrcbPad9[5]; //0x3c8b ULONG FeatureBits; //0x3c90 union _LARGE_INTEGER UpdateSignature; //0x3c98 volatile ULONGLONG IsrTime; //0x3ca0 ULONG PrcbPad90[2]; //0x3ca8 struct _PROCESSOR_POWER_STATE PowerState; //0x3cb0 ULONG PrcbPad91[13]; //0x3e40 struct _KDPC DpcWatchdogDpc; //0x3e74 struct _KTIMER DpcWatchdogTimer; //0x3e98 union _SLIST_HEADER HypercallPageList; //0x3ec0 VOID* HypercallPageVirtual; //0x3ec8 VOID* VirtualApicAssist; //0x3ecc ULONGLONG* StatisticsPage; //0x3ed0 struct _CACHE_DESCRIPTOR Cache[5]; //0x3ed4 ULONG CacheCount; //0x3f10 struct _KAFFINITY_EX PackageProcessorSet; //0x3f14 ULONG SharedReadyQueueMask; //0x3f20 struct _KSHARED_READY_QUEUE* SharedReadyQueue; //0x3f24 ULONG CoreProcessorSet; //0x3f28 ULONG ScanSiblingMask; //0x3f2c ULONG LLCMask; //0x3f30 ULONG CacheProcessorMask[5]; //0x3f34 ULONG ScanSiblingIndex; //0x3f48 VOID* WheaInfo; //0x3f4c VOID* EtwSupport; //0x3f50 union _SLIST_HEADER InterruptObjectPool; //0x3f58 ULONG SharedReadyQueueOffset; //0x3f60 ULONG PrcbPad92[2]; //0x3f64 ULONG PteBitCache; //0x3f6c ULONG PteBitOffset; //0x3f70 ULONG PrcbPad93; //0x3f74 struct _PROCESSOR_PROFILE_CONTROL_AREA* ProcessorProfileControlArea; //0x3f78 VOID* ProfileEventIndexAddress; //0x3f7c struct _KDPC TimerExpirationDpc; //0x3f80 struct _SYNCH_COUNTERS SynchCounters; //0x3fa0 struct _FILESYSTEM_DISK_COUNTERS FsCounters; //0x4058 struct _CONTEXT* Context; //0x4068 ULONG ContextFlagsInit; //0x406c struct _XSAVE_AREA* ExtendedState; //0x4070 struct _KENTROPY_TIMING_STATE EntropyTimingState; //0x4074 VOID* IsrStack; //0x419c struct _KINTERRUPT* VectorToInterruptObject[208]; //0x41a0 struct _SINGLE_LIST_ENTRY AbSelfIoBoostsList; //0x44e0 struct _SINGLE_LIST_ENTRY AbPropagateBoostsList; //0x44e4 struct _KDPC AbDpc; //0x44e8 struct _IOP_IRP_STACK_PROFILER IoIrpStackProfilerCurrent; //0x4508 struct _IOP_IRP_STACK_PROFILER IoIrpStackProfilerPrevious; //0x455c struct _KTIMER_EXPIRATION_TRACE TimerExpirationTrace[16]; //0x45b0 ULONG TimerExpirationTraceCount; //0x46b0 };